package com.ruoyi.web.controller.shopping;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.domain.shopping.CartItem ;
import com.ruoyi.system.service.shopping.ICartItemService ;

@RestController
@RequestMapping("/mall/myCart")
public class CartItemController extends BaseController {
    @Autowired
    private ICartItemService cartItemService;

    /**
     * 查询我的购物车列表
     */
    @GetMapping("/list")
    public TableDataInfo list(CartItem cartItem) {
        startPage();
        // 强制设置为当前登录用户
        cartItem.setUserId(SecurityUtils.getUserId());
        List<CartItem> list = cartItemService.selectCartItemList(cartItem);
        return getDataTable(list);
    }

    /**
     * 新增或修改购物车
     */
    @PostMapping
    public AjaxResult add(@RequestBody CartItem cartItem) {
        cartItem.setUserId(SecurityUtils.getUserId());
        return toAjax(cartItemService.addOrUpdateCartItem(cartItem));
    }

    /**
     * 修改购物车数量
     */
    @PutMapping
    public AjaxResult edit(@RequestBody CartItem cartItem) {
        // 安全校验：确保操作的是自己的数据（实际生产环境建议校验ID归属）
        // 这里简化处理，Service层update依赖ID
        return toAjax(cartItemService.addOrUpdateCartItem(cartItem));
    }

    /**
     * 删除购物车项
     */
    @DeleteMapping("/{cartItemId}")
    public AjaxResult remove(@PathVariable Long cartItemId) {
        return toAjax(cartItemService.deleteCartItemById(cartItemId));
    }
}